#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
简单数学运算MCP服务
"""

from fastmcp import FastMCP
import math

# 创建MCP数学运算服务
mcp = FastMCP("Math Calculator")

@mcp.tool()
def add(a: float, b: float) -> float:
    """返回a与b的和"""
    return a + b

@mcp.tool()
def subtract(a: float, b: float) -> float:
    """返回a与b的差"""
    return a - b

@mcp.tool()
def multiply(a: float, b: float) -> float:
    """返回a与b的积"""
    return a * b

@mcp.tool()
def divide(a: float, b: float) -> float:
    """返回a与b的商，b不能为0"""
    if b == 0:
        raise ValueError("除数b不能为0")
    return a / b

@mcp.tool()
def power(base: float, exponent: float) -> float:
    """幂运算
    
    Args:
        base: 底数
        exponent: 指数
        
    Returns:
        幂运算结果
    """
    return base ** exponent

@mcp.tool()
def square_root(x: float) -> float:
    """平方根运算
    
    Args:
        x: 要求平方根的数
        
    Returns:
        平方根
    """
    if x < 0:
        return "错误: 负数没有实数平方根"
    return math.sqrt(x)

# 启动服务
if __name__ == "__main__":
    mcp.run(transport="stdio")